1. 引言
- 本章节所使用的是编译安装的方式来安装Python3
2. 第一步 -> 安装 Python 所需的库环境
- 安装python所需的库环境 -> 解决编译安装 Python3 所需的软件依赖 -> 非常重要
- 注意:
- 只有解决了这些依赖关系后期才能正常运行 Python 3.6,如果不解决,会出现各种报错信息,此时还得重新编译(即: 重新安装)Python 3.6
- 如果python3已经编译成型了(即:安装完成了),但是发现还有依赖包没有安装,那么就要重新再一次编译(即:重新安装)
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
3.第二步 -> 下载并解压软件压缩包
- 为什么选择下载 Python-3.6.7 版本?
- 因为如果要做数据分析 ipython 要依赖于大于或等于 3.6 版本的 Python 环境
- 下载 Python-3.6.7.tar.xz 压缩包到 /opt 目录下
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz

- 解压 Python-3.6.7.tar.xz 到 /opt 目录下
# 将 Python-3.6.7.tar.xz 压缩包解压成 Python-3.6.7.tar
xz -d Python-3.6.7.tar.xz
# 将 Python-3.6.7.tar 压缩包解压成 Python-3.6.7
tar -xf Python-3.6.7.tar

4.第三步 -> 为开始编译做准备
- 执行 Python 源码包路径下的 configure 脚本文件,为开始编译做准备(即: 为安装软件做准备)
- configure 脚本文件一般用来生成 Makefile 文件,为下一步的编译做准备

- 命令: ./configure --prefix=路径 -> 指定将Python安装到指定目录下
- 注意: 该条命令必须在 Python-3.6.7 目录下运行,否则会找不到需要执行 configure 脚本文件
./configure --prefix=/opt/python36/
- 检查是否生成了 Makefile 文件

5.第四步 -> 开始编译
- make 命令的介绍
- 大多数的源代码包都是通过make命令进行编译的(当然有些perl或python编写的软件需要调用perl或python来进行编译)。
- 如果在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
- make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。
- make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成
- 命令: make -> 开始编译
- 注意:
- make 命令必须在 Python-3.6.7 目录下运行
- 此步骤不会生成 /opt/python36/ 软件目录
make
6.第五步 -> 安装软件
- 在进行安装软件之前,有些软件需要先运行 make check 或 make test来进行一些测试
- 命令: make install -> 安装软件
- 注意:
- make install 命令必须在 Python-3.6.7 目录下运行
- make install 需要使用 root 身份运行
- 此步骤才会生成 /opt/python36/ 软件目录
make install
7.第四、五步可以同时执行
- 执行完编译步骤后,紧接着执行软件的安装
make && make install
8.第六步 -> 检测 Python 是否安装成功
- 检查 /opt/python36 目录是否存在



- 检查 python 是否能正常运行
- 在 /opt/python36 目录下执行以下命令
./bin/python3.6
# 等同于
./bin/python3 # 因为 python3 是 python3.6 的软连接(即: 快捷方式)
9.第七步 -> 配置环境变量
- 配置环境变量的作用就是可以快速使用 python 命令
- 方式一: 使用软连接配置环境变量 -> 不推荐使用
- 注意:
- 使用软连接配置 python3 只是配置了 python3 命令,而没有配置 pip3 的命令
- 使用软连接配置 python3 后不适用于 virtualenv 的创建
- 使用软连接配置 python3 配置到环境变量中
ln -s /opt/python36/bin/python3.6 /usr/bin/python3
- 使用软连接配置 pip3 配置到环境变量中
ln -s /opt/python36/bin/pip3 /usr/bin/pip3
- 方式二: 修改环境变量 -> 推荐使用
- 注意:
- 直接修改环境变量会同时配置 python3 和 pip3 的命令
- python36 下的 bin 路径要放到环境变量的最前面,因为在配置 virtualenv 的时候,virtualenv 会根据环境变量中的顺序来选择 python 的版本
- 临时配置环境变量(即: 退出登录后就会失效)
PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # python36 下的 bin 路径要放到环境变量的最前面,因为在配置 virtualenv 的时候,virtualenv 会根据环境变量中的顺序来选择 python 的版本
# 等同于
PATH=/opt/python36/bin/:$PATH
- 将环境变量配置到全局环境变量中使其永久生效(即: 每次登陆都会生效)
- 进入全局环境变量文件
vim /etc/profile
- 在全局环境变量文件的底部写入你要定义的变量
PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # python36 下的 bin 路径要放到环境变量的最前面,因为在配置 virtualenv 的时候,virtualenv 会根据环境变量中的顺序来选择 python 的版本
# 等同于
PATH=/opt/python36/bin/:$PATH
- 重新执行全局环境变量文件,使其修改的内容生效
source /etc/profile
10.第八步 -> 配置完环境变量后检查python命令是否能正确运行
python3
pip3 install pymysql -i https://pypi.douban.com/simple